This invention in general relates to proxy interceptor components and specifically relates to arranging java interceptor components in a plug and play mode using extensible markup language (XML) configuration and Java® dynamic proxies over an existing java business component such that the underlying business logic is separated from the system operations.
Business components are primarily written for addressing business functionalities. The software business components encapsulate the business logic. These business components are deployed in a Java server environment that provides system functionalities like transaction management, security management, etc. For example an enterprise java bean (EJB) component is deployed in an application server environment that provides the system functionalities. The business components, i.e. the EJB components encapsulating the business logic, depend on the application server's system functionalities to complete business objectives. The business components depend on the application server's transaction service to manage its transactions and the application server's security services to provide security. The naming service of the application server may expose the business component, in which case the business component may be accessed as remote components by external systems.
In order to avoid exposing underlying business logic or other data layers, a business component needs to be made independent of the server environment in which the business component is deployed. The system functionalities and environment functionalities need to be outside the scope of a business component. Furthermore, it is desirable if the components that provide the system functionalities could be organized, i.e. added and/or removed, around an existing business component in a plug and play mode.
Existing methods employ interceptors to intercept communication between a client program and the business components. However, the need to organize the interceptor components and separate the business logic from the system functionalities is unaddressed.
In view of the foregoing discussion, there is an unaddressed need for separating business logic from system functionalities in an environment and minimizing the dependence of these business components on the system functionalities.